const Koa = require('koa')
const mysql = require('mysql2/promise');
const koaStatic = require('koa-static');
const jpart = require('./lib/jpart');
global.reqlib = require('app-root-path').require;
const config = require('./config/config');

const appRouter = require('./app/router.js');

const app = new Koa();
app.context.config = config;
app.context.jpart = jpart;
const db = mysql.createPool(config.mysql);
// 挂在数据库
app.context.db = db;


// 静态资源文件，缓存10分钟
app.use(
	koaStatic(__dirname + '/public', {maxage: 600000})
);

// 错误处理
app.on('error', err => {
	console.log('Server error: ');
	console.dir(err);
})
		
appRouter(app)

app.listen(config.port,()=>{
    console.log(`http://127.0.0.1:${config.port}`);
})

// webSocket.listen(8888)

/**
 * code码说明
 *
 * @param {number} sucsess - 1001: 用户未登录
 * 1000: 操作成功
 * 1001: 参数重复（数据库已存在某参数）
 * 1002: 权限不足 
 * 1003: 参数错误
 * 1004: 服务器错误
 * 1005：未知错误
 * 1006: 未登录
 */